import configparser


# 读取配置文件的类
class ReadConfigFile:
    """
    用于读取配置文件的类。

    参数:
    file_path (str): 配置文件的路径。

    属性:
    file_path (str): 配置文件的路径。
    config (ConfigParser): 用于解析配置文件的对象。
    """

    def __init__(self, file_path):
        """
        初始化类，读取配置文件。

        参数:
        file_path (str): 配置文件的路径。
        """
        self.__file_path = file_path
        self.__config = configparser.ConfigParser()
        self.__config.read(self.__file_path)

    def read_config_file(self, section, key):
        """
        读取配置文件中指定节(section)的键(key)对应的值。

        参数:
        section (str): 配置文件中的节(section)名称。
        key (str): 配置文件中节(section)下的键(key)名称。

        返回:
        str: 指定节和键对应的值。

        异常:
        打印配置文件读取失败的错误信息。
        """
        try:
            section_key = self.__config.get(section, key)
            return section_key
        except Exception as e:
            print("配置文件读取失败", e)


if __name__ == '__main__':
    readconfig = ReadConfigFile('../config_file/config_file.ini')
    print(readconfig.read_config_file('upload_report', 'ip'))
    print(int(readconfig.read_config_file('upload_report', 'port')))
    print(readconfig.read_config_file('upload_report', 'username'))
    print(readconfig.read_config_file('upload_report', 'password'))
